import datetime
import random

my_money=5000

def store1(my_money):
    # 商场商品
    pro_dict = {"黄瓜": 500, "土豆": 400, "茄子": 800}
    buy_cart = {}
    pro_dict=discount_rule(pro_dict)
    print(pro_dict)
    pay=0

    while 1:
        product=input("您想要购买的商品：")
        #是否卖这种商品
        flag=False
        for pro in pro_dict.keys():
            #有卖
            if pro==product:
                flag=True
                #购买数量
                count=int(input("请输入您要购买的数量:"))
                #金额判定
                if money_engnoe(my_money,pro_dict[pro],count):
                    flag1=False
                    #重复购买
                    for pro1 in buy_cart.keys():
                        if pro1==pro:
                            flag1=True
                            buy_cart[pro]+=count
                            pay+=(pro_dict[pro]*count)
                            print("恭喜，{}{}个购买成功！您的卡余额还剩{}".format(pro,count,my_money-pay))
                            break
                    #新增一条
                    if not flag1:
                        buy_cart.update({pro:count})
                        pay+=(pro_dict[pro]*count)
                        print("恭喜，{}{}个购买成功！您的卡余额还剩{}".format(pro, count, my_money - pay))
        #商品不存在
        if not flag:
            print("没有这个商品，别瞎弄！")
        #退出
        result = input("是否退出购买？（输入Q或q退出，其他任意键继续）")
        if result == "q" or result == "Q":
            break
    #时间
    time=datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    #总数量
    allcount=0
    for count in buy_cart.values():
        allcount+=count
    show(buy_cart,time,my_money-pay,allcount,pay)

    while 1:
        result=input("是否要退货？(y/n)")
        #退出标志
        flag=False
        if result=="y":
            pro=input("请输入您要退的商品:")
            #是否存在要退的商品
            for p in buy_cart.keys():
                if pro==p:
                    flag=True
                    count=int(input("请输入您要退的数量"))
                    if count<=buy_cart[pro]:
                        buy_cart[pro]-=count
                        pay-=pro_dict[pro]*count
                    else:
                        print("数量不正确，请重新开始输入")
            if not flag:
                print("退货商品不存在")
            print("退货成功")
            show(buy_cart, time, my_money - pay, allcount, pay)
        if result!="y":
            break
    show(buy_cart, time, my_money - pay, allcount, pay)
    return my_money

#金额判定()
def money_engnoe(my_money,money,count):
    if my_money<(money*count):
        print("穷鬼，钱不够！请到其他超市购买！")
        return False
    else: return True
#优惠券规则
def discount_rule(pro_dict):
    dis_list = [5, 9.5, 8.5, 6.5, 7.5, 6, 7, 8, 9, 6.5]
    pro=random.choice(list(pro_dict))
    dis_index=random.choice(list(dis_list))
    dis_num=round(dis_index*0.1,2)
    pro_dict[pro]*=dis_num
    print("恭喜您抽到"+pro+"的"+str(dis_index)+"折优惠卷")
    return pro_dict

def show(buy_cart,time, money, allcount, pay):
    print(buy_cart)
    print("购买时间：{},卡余额：{},购物数量：{},总价：{}".format(time, money, allcount, pay))

store1(my_money)